/*
 *  MW.h
 *  T3nsors
 *
 *  Created by Michael Barriault on 09-10-27.
 *  Copyright 2010 MikBarr Studios. All rights reserved.
 *
 */

#pragma once

#include <T3nsors/T3nsors.h>
#include <string>

class MW {
private:
	void DefaultValues();
public:
	std::string id;
	bool stopit;
	T3::Domain O;
	T3::Comm *Badge;
	T3::Vector x,p;
	real K,epsilon,I,T,s; // Generic parameters
	real c; // Spherical wave parameters
	real Omega; // Neutron star parameters
	bool pole;
	int n;
	MW();
	MW(T3::Comm*, std::vector<std::string>);
	~MW(void);
	void Solve();
	void Print(real,T3::Set);
	void Print(real,T3::Scalar);
	void Print(real,T3::Vector);
	void PrintL2(real,T3::Scalar);
	void PrintXYZ(real,T3::Scalar);
	void PrintXY(real,T3::Scalar,int);
	void PrintXZ(real,T3::Scalar,int);
	void PrintYZ(real,T3::Scalar,int);
	void Args(std::vector<std::string>);
	void Params(std::ostream&);
};

